The present invention pertains to the field of wireless communication technology. More specifically, the present invention pertains to demodulating and processing signals received by a receiver in a spread spectrum communication system.
Wireless telephony has become a widely available mode of communication in modern society. Variable rate communication systems, such as Code Division Multiple Access (CDMA) spread spectrum systems, are among the most commonly deployed wireless technology. Variable rate communication systems transmit data in units called data frames.
A CDMA system utilizes digital encoding for every telephone call or data transmission in order to provide privacy and security. Unique codes are assigned to every communication, which distinguish it from the multitude of calls simultaneously transmitted over the same broadcast spectrum. Users share time and frequency allocations and are channelized by unique assigned codes. The signals are separated at the receiver in a known manner so that the receiver accepts only signals from the desired channel.
One of the main advantages of a CDMA system is the capability to use signals that arrive at the receiver with different time delays, referred to as multipath. The different time delays are caused by, for example, the receiver location and the path taken by the transmitted signal (e.g., the signal might reflect off of a building). CDMA combines the multipath signals to create a stronger signal at the receiver.
In a typical implementation, a CDMA receiver (e.g., a rake receiver) uses multiple receivers or demodulators (referred to as fingers). Each finger demodulates the signal, and the results are combined to make a stronger signal.
Prior Art FIG. 1 illustrates an exemplary receiver 10 of the prior art. The transmitted signal is received by analog transceiver 12 using an antennae (not shown). Analog transceiver 12 digitizes the received signal and provides the results to digital transceiver 14. Each demodulator 15a, 15b, 15c and 15d (e.g., fingers) is assigned to demodulate the transmitted signal that traveled by a different path to receiver 10 (that is, a multipath signal). Digital transceiver 14 also includes processing hardware 16 for operations such as combining, deinterleaving, and decoding.
A disadvantage to the prior art is the use of hardware for operations such as combining, deinterleaving, and decoding. In particular, the use of hardware for these operations limits the flexibility available for implementing different approaches. For example, the hardware is likely designed for a particular approach, and thus may not be readily adaptable to different approaches. Hardware components can also be expensive to manufacture. Software, on the other hand, can provide greater flexibility and may also be less expensive than hardware. Thus, in some instances it is desirable to replace the hardware with software or a combination of hardware and software.
When software is introduced, the functions formerly performed with hardware will be performed with different techniques that can be used in software. One such hardware function is accounting for the time offsets associated with the different arrival times of multipath signals. The time delays are asynchronous. Hardware implementations (e.g., processing hardware 16) account for the time offsets using various techniques known in the art.
With software, the multipath signal is demodulated by each finger and the resulting data are stored in a buffer (other operations known in the art may also be performed). In each finger, the data are integrated until one symbol (equivalent to 64 chips) is stored. When one symbol is stored in a finger, that finger generates an interrupt that is sent to the processor (e.g., a digital signal processor, DSP). In response to the interrupt, the processor reads the stored symbol from that finger and processes the symbol data. At the same time, data from other fingers can also be read and processed.
For the purpose of reducing overall power consumption in the receiver, it is desirable to put the processor into xe2x80x9csleepxe2x80x9d mode whenever possible. Otherwise, the processor continues to consume the full power it needs, reducing the time between battery charges or necessitating larger batteries. Consumers desire less expensive, lighter and convenient receivers, and so increasing the frequency of battery charges or the size of the battery is contrary to consumer preferences.
However, the prior art is problematic because of the different time offsets associated with a multipath signal. As a result of the offset, each finger will store a symbol at different times. Hence, interrupts are sent to the processor frequently. Frequent interrupts to the processor either do not provide the opportunity to place the processor into sleep mode, or reduce the amount of time that the processor is in sleep mode. For example, each time the processor is ready to enter its sleep mode, an interrupt is received and so the processor is constantly xe2x80x9cawakexe2x80x9d and at full power; or, just as the processor enters its sleep mode, it may be xe2x80x9cawakenedxe2x80x9d by another interrupt and so is not powered down for an extended period. In some instances, additional power is needed to wake up the processor, and so frequent wakeups can also increase overall power consumption and reduce the time between battery charges.
Another disadvantage to the prior art is that frequent interrupts can disrupt or delay the other processing functions performed by the processor. That is, if the processor is servicing an interrupt, it may not be able to perform other processing that is needed. As a result, the other processing functions are delayed or slowed, reducing the overall performance of the receiver.
Accordingly, what is needed is an apparatus that can be used with software and that can efficiently account for the asynchronous time offsets associated with multipath signals. What is also needed is an apparatus that addresses the above needs and reduces the number of processor interrupts, reduces processor power consumption, and improves processing performance. The present invention provides a novel solution to the above needs.
These and other objects and advantages of the present invention will become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.
The present invention provides an apparatus and method thereof that can be used with software and that can efficiently account for the asynchronous time offsets associated with multipath signals. The present invention also provides an apparatus and method thereof that address the above needs, reduce the number of processor interrupts, reduce processor power consumption, and improve processor performance.
The present embodiment of the present invention pertains to an apparatus and method thereof for sampling multipath signal data. In a preferred embodiment, the apparatus is disposed within a receiver used in a communication system, in particular a communication system that uses code division multiple access (CDMA) spread spectrum type communication signals (e.g., multipath signals).
In the present embodiment, the apparatus includes a plurality of demodulators, each of the plurality of demodulators receiving signal data and demodulating the signal data, a controller coupled to the plurality of demodulators, and a timer coupled to the controller. The timer generates a controller interrupt at a specified frequency. The controller interrupt causes the controller to sample demodulated signal data from the plurality of demodulators. In one embodiment, the specified frequency is greater than the symbol rate. In another embodiment, the specified frequency is equal to the symbol rate.
In one embodiment, each demodulator includes a buffer, and the demodulated signal data are stored in the buffer. The demodulated signal data stored in the buffer subsequent to a controller interrupt can be distinguished from the demodulated signal data stored in the buffer prior to the controller interrupt (for example, by using a status bit).